Users of modern operating systems and applications may be accustomed to using a “clipboard” to copy and paste a wide variety of data between different screens and applications. In addition to holding multiple clipboard data items, some clipboard systems have the ability to represent or contain multiple formats for a given item. For example, when a user copies, say, a set of cells from a spreadsheet, the spreadsheet application may place those cells on the clipboard in multiple formats. For example, for the copied spreadsheet cells, a clipboard might contain a plain text representation, a formatted text representation (in one or more of a variety of formats), an image representation, an application-specific representation that contains all of the cell information, and so on. When a user pastes the spreadsheet cells into a particular application, the application may request or use a particular format. For example, a text editor may only understand and use the plain text representation, an image editing program may use the image representation, another instance of the same spreadsheet application may use the spreadsheet data, and so on.
While a clipboard system may have the capability of supporting multiple formats for the same item, it is not always the case that a particular format that may be most useful for a destination is included in the format or formats provided by the source of the data. As just one example, a personal information management (PIM) application may have the ability to automatically create a contact, with the appropriate fields already populated, when the user pastes data that the PIM application recognizes as a contact. For example, the PIM application might recognize data formatted using the vCard standard. However, even when a source application has all of the information required to create a contact—the name, address, phone number(s), and so on—it may not know how to format this information in a specific format that may be required by some other application. Continuing this example, if the source provides the contact data in another format—like hCard—then the destination may not recognize the data as a contact and may not automatically create a contact using the pasted data. As a result, the transfer of data between different applications may be limited to a lower fidelity representation, like strings of text. In this example, even if both a source and destination application understand contact data, if they do not exchange contact data in formats supported by both the source and destination applications then a user may still need to, for example, manually copy individual fields—like name, address, and so on—between applications.
In another example, a user might place data from a source on a clipboard where the data includes some kind of reference to additional or other information. However, instead of pasting the reference itself, the user might instead want to paste the data referred to or referenced by the reference, or at least some data that is associated with or related to the referenced data. For example, a user might have a Uniform Resource Locator (URL)—perhaps represented using a text format—that references an image, and might want to paste the actual image instead of just the reference. The user might be able to retrieve the actual image by first copying the URL to the clipboard. The user might then paste the URL into a web browser, instruct the web browser to retrieve the image, and manually save the image retrieved by the web browser. In this example, the user is required to perform a number of additional steps because the information they can place on a clipboard doesn't contain the actual information they want to paste.